package cn.song.freight.service;

import cn.song.freight.domain.dto.StrategyConfigUnifiedSaveRequestDTO;
import cn.song.freight.domain.result.R;

/**
 * 策略配置统一处理服务
 * 专门处理策略配置的统一保存、更新、删除操作
 *
 * @author SongRenShuo
 * @version 3.0.0
 * @since 2025-08-26
 */
public interface StrategyConfigUnifiedService {


    /**
     * 统一处理所有策略配置变更 - V2版本（极简优化版）
     * <pre>
     * 采用"先删除后重建"的策略，极简化处理逻辑：
     *
     * 核心优化：
     * 1. 删除策略下的所有现有配置（区域定价配置、重量规则）
     * 2. 根据请求重新创建所有配置
     * 3. 任何失败直接抛异常，利用事务回滚
     * 4. 无需复杂的计数和错误收集
     *
     * 处理流程：
     * 1. 清理：删除策略下的所有现有配置
     * 2. 重建：根据请求创建新的配置
     * 3. 成功返回true，失败抛异常
     *
     * 优势：
     * - 逻辑极简，代码量最少
     * - 利用事务自动回滚，保证一致性
     * - 错误处理简单，维护成本最低
     *
     * @param requestDTO 简化结构的统一配置请求DTO
     * @return 成功返回true，失败抛异常
     * </pre>
     */
    R<Boolean> processAllConfigChangesV2(StrategyConfigUnifiedSaveRequestDTO requestDTO);
}
